package net.jxiny.oschina.view;

import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;

import com.next.easynavigation.view.EasyNavigationBar;

import net.jxiny.oschina.Discovery.Fragment.DiscoveryFragment;
import net.jxiny.oschina.MY.Fragment.MyFragment;
import net.jxiny.oschina.MoreWindow;
import net.jxiny.oschina.R;
import net.jxiny.oschina.synthetical.fragment.NewsFragment;
import net.jxiny.oschina.tweet.fragment.TweetFragment;

import java.util.ArrayList;
import java.util.List;

import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment;
import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {
     //    private EasyNavigationBar navigationBar;

    @BindView(R.id.navigationBar)
    EasyNavigationBar navigationBar;

    //绑定一个view；id为一个view变量
    @BindView(R.id.idContainer)
    ConstraintLayout idContainer;
    MoreWindow mMoreWindow;

    //定义 一个私人的MoreWindow 的变量
    //private MoreWindow mMoreWindow;

    //定义一个字符串数组为tabText
    private String[] tabText = {"综合", "动弹", "发现", "我的"};
    //未选中icon
    private int[] normalIcon = {R.mipmap.ic_nav_news_normal, R.mipmap.ic_nav_tweet_normal, R.mipmap.ic_nav_discover_normal,R.mipmap.ic_nav_my_normal};
    //选中时icon
    private int[] selectIcon = {R.mipmap.ic_nav_news_actived, R.mipmap.ic_nav_tweet_actived, R.mipmap.ic_nav_discover_actived, R.mipmap.ic_nav_my_actived};

    //定义集合的类型为Fragment（类型ArryList是集合：定义泛型）
    private List<Fragment> fragments = new ArrayList<>();
    //定义一个Handler的对象为mHandler，私有的
    private Handler mHandler = new Handler();
    //定义一个布尔型flag值为真
    private boolean flag = true;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //onCreate的方法是在Activity创建时被系统调用
        super.onCreate(savedInstanceState);
        //是一个Activity生命周期的开始
        setContentView(R.layout.activity_main);



//        navigationBar = findViewById(R.id.navigationBar);
        //初始化
        ButterKnife.bind(this);


        //状态栏透明//设置状态栏文字颜色及图标为深色
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|
                        View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        //根据上面设置是否对状态栏单独设置颜色
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            getWindow().setStatusBarColor(Color.TRANSPARENT);
        }


        //初始化
        mMoreWindow = new MoreWindow(this);
        //在MoreWindow中调用init方法并把idContainer传过去
        mMoreWindow.init(idContainer);
        //获取id，点击监听事件
        findViewById(R.id.idContainer).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showMoreWindow();
            }
        });
        //综合
        fragments.add(new NewsFragment());
        //动弹
        fragments.add(new TweetFragment());
        //发现
        fragments.add(new DiscoveryFragment());
        //我的
        fragments.add(new MyFragment());


        View view = LayoutInflater.from(this).inflate(R.layout.custom_add_view, null);

        navigationBar.titleItems(tabText)     //Tab文字集合
                .normalIconItems(normalIcon)//Tab未选中图标集合
                .selectIconItems(selectIcon)//Tab选中图标集合
                .fragmentList(fragments)//fragment集合
                .canScroll(true)
                .addAsFragment(false)
                .mode(EasyNavigationBar.MODE_ADD_VIEW)
                .addCustomView(view)
                .iconSize(30)//Tab图标大小
                .tabTextSize(15)//Tab文字大小
                .tabTextTop(5)//Tab文字距Tab图标的距离
                .selectTextColor(Color.parseColor("#24cf5f"))//Tab选中时字体颜色
//                .normalTextColor(Color.parseColor("#666666"))   //Tab未选中时字体颜色
//                .scaleType(ImageView.ScaleType.CENTER_INSIDE)  //同 ImageView的ScaleType
//                .navigationBackground(Color.parseColor("#80000000"))   //导航栏背景色
                .fragmentManager(getSupportFragmentManager())
                .onTabClickListener(new EasyNavigationBar.OnTabClickListener() {        //Tab点击事件
                    @Override
                    public boolean onTabClickEvent(View view, int position) {
                        Log.e("Tap->Position", position + "");
                        if (position == 2) {
                            mHandler.post(new Runnable() {
                                @Override
                                public void run() {
                                    //＋ 旋转动画
//                                    if (flag) {

//
//                                        navigationBar.getCustomAddView().animate().rotation(90).setDuration(400);
//                                    } else {
//                                        navigationBar.getCustomAddView().animate().rotation(0).setDuration(400);
//                                    }
//                                    flag = !flag;

                                    showMoreWindow();


                                }
                            });
                        }
                        return false;
                    }
                })
                .smoothScroll(true)  //点击Tab  Viewpager切换是否有动画
//                .canScroll(false)    //Viewpager能否左右滑动
//                .mode(EasyNavigationBar.MODE_ADD)   //默认MODE_NORMAL 普通模式  //MODE_ADD 带加号模式
//                .anim(Anim.ZoomIn)                //点击Tab时的动画
//                .addIconSize(36)    //中间加号图片的大小
//                .addLayoutHeight(100)   //包含加号的布局高度 背景透明  所以加号看起来突出一块
//                .navigationHeight(40)  //导航栏高度
//                .lineHeight(100)         //分割线高度  默认1px
////                .lineColor(Color.parseColor("#ff0000"))
//                .addLayoutRule(EasyNavigationBar.RULE_BOTTOM) //RULE_CENTER 加号居中addLayoutHeight调节位置 EasyNavigationBar.RULE_BOTTOM 加号在导航栏靠下
//                .addLayoutBottom(10)   //加号到底部的距离
//                .hasPadding(true)    //true ViewPager布局在导航栏之上 false有重叠
//                .hintPointLeft(-3)  //调节提示红点的位置hintPointLeft hintPointTop（看文档说明）
//                .hintPointTop(-3)
//                .hintPointSize(6)    //提示红点的大小
//                .msgPointLeft(-10)  //调节数字消息的位置msgPointLeft msgPointTop（看文档说明）
//                .msgPointTop(-10)
//                .msgPointTextSize(9)  //数字消息中字体大小
//                .msgPointSize(18)    //数字消息红色背景的大小
//                .addAlignBottom(true)  //加号是否同Tab文字底部对齐  RULE_BOTTOM时有效；
//                .addTextTopMargin(50)  //加号文字距离加号图片的距离
//                .addTextSize(15)      //加号文字大小
//                .addNormalTextColor(Color.parseColor("#ff0000"))    //加号文字未选中时字体颜色
//                .addSelectTextColor(Color.parseColor("#00ff00"))    //加号文字选中时字体颜色
                .build();

    }








        private void showMoreWindow() {
            //弹出窗口效果并且点击事件
            if (null == mMoreWindow) {
                mMoreWindow = new MoreWindow(this);
                mMoreWindow.init(idContainer);
            }

            //在idContainer界面显示
            mMoreWindow.showMoreWindow(idContainer );
        }


    }


